package com.chenfan.mcn.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Objects;

/**
 * 刊例配置-报价方式-数据类型
 *
 * @author wulg
 * @date 2021-12-28
 **/
@Getter
@AllArgsConstructor
public enum QuoteDataTypeEnum {

    /**
     * 数据字典
     */
    DICT(1,"数据字典", 0),
    /**
     * 文本
     */
    TEXT(2,"文本", 100),
    /**
     * 数字
     */
    NUM(3,"数字", 10),
    ;

    /**
     * 数据类型
     */
    private Integer type;

    /**
     * 数据类型名称
     */
    private String name;

    /**
     * 最大长度 <=0 不做限制
     */
    private int maxLength;

    /**
     * 根据类型获取枚举
     * @param type
     * @return
     */
    public static QuoteDataTypeEnum toEnum(Integer type) {
        if(Objects.nonNull(type)) {
            for (QuoteDataTypeEnum item : QuoteDataTypeEnum.values()) {
                if (item.getType().equals(type)) {
                    return item;
                }
            }
        }
        return null;
    }

    /**
     * 根据类型获取名称
     * @param type
     * @return
     */
    public static String getNameByType(Integer type) {
        QuoteDataTypeEnum quoteDataTypeEnum = QuoteDataTypeEnum.toEnum(type);
        return Objects.nonNull(quoteDataTypeEnum) ? quoteDataTypeEnum.name : null;
    }

    /**
     * 是否是字典
     * @param type
     * @return
     */
    public static boolean isDict(Integer type) {
        return QuoteDataTypeEnum.DICT.getType().equals(type);
    }
}
